home *** CD-ROM | disk | FTP | other *** search
/ Amiga Inside! / Amiga FD Inside (1995)(Ultramax).iso / forumamiga / ausgabe09 / texte / scrolling < prev    next >
Text File  |  1992-09-06  |  2KB  |  49 lines

  1.  
  2.  
  3.               Wie programmiert man butterweiches Scrolling ?
  4.  
  5.                  - oder  Ist der Blitter schnell genug ? -
  6.  
  7.  
  8.  
  9.  Ich möchte eine Scrolling-Routine für ein Video-betiteltingsprogramm schreiben.
  10.  Es soll der gesammte Bildschirm gescrollt werden ( am besten HiRes+Interlace
  11.  mit mindest. 4 Farben )
  12.  Dafür gibt es ja 2 Möglichkeiten:
  13.  
  14.  1. Viewport-Scrolling:
  15.     Also bräuchte ich eine Bitmap, die doppelt so groß wie der Bildschirm ist,
  16.     und eine Interruptroutine die mittels ScrolVPort() den sichtbaren Bereich
  17.     jeweils eine Zeile tiefer beginnen läßt, und, sobald die letzte Bitmap-
  18.     zeile am unteren Ende des Bildschirms erscheint, wieder die oberste Zeile
  19.     der Bitmap anzeigt usw.
  20.     Diese Methode ist zwar schnell genug (also bei jedem VBI eine Zeile nach
  21.     oben gescrollt)  , aber leider sehr unflexibel:
  22.     so kann man z.B. nicht die obere Bildschirmhälfte von oben und die untere
  23.     von unten hereinscrollen, sondern wirklich nur den gesammten Bildschirm-
  24.     INHALT vertikal verschieben.
  25.  
  26.  2. Blitterscrollling:
  27.     Man benutzt 3 gleichgroße Bitmaps:
  28.     2 fürs double buffering und eine die den Titel letztendlich enthält.
  29.     Eine Interruptroutine ändert die Copperliste bei jedem VBI so ab, daß
  30.     die beiden Bitmaps abwechselnd angezeigt werden.
  31.     In die Bitmap, die nicht angezeigt wird, kann dann inzwischen ein Teil
  32.     des Titels hineinkopiert werden. Somit kann man z.B. den oberen Teil
  33.     des Titels von links nach rechts hereinscrollen und den unteren von
  34.     rechts nach links.
  35.     Soviel zur Theorie. Allerdings stürzt der Amiga ab, sobald mehr als
  36.     ein einfarbiger LoRes-Bildschirm zu verschieben ist.
  37.     Das einzige, was ich mir vorstellen kann ist, daß BltBitmap() zu langsam
  38.     ist. Leider weiß ich weder wie ich den Blitter auf Hardwareebene an-
  39.     sprechen kann noch ob der Geschwindigkeitsvorteil sich überhaupt lohnt.
  40.     Wer hat damit schon Erfahrung ? Bitte schreibt mir ! ( Assembler oder C !)
  41.     Es muß doch möglich sein, einen ganzen Bildschirm 50x pro Sekunde zu ko-
  42.     pieren !  VideoBroadcast bringt ja auch auf einem normalen Amiga ein
  43.     butterweiches Echtzeitscrolling.
  44.     Ich würde mich echt freuen, wenn mir jemand weiterhelfen könnte.
  45.  
  46.     Andreas Ackermann
  47.     Lorenz-Summa-Str. 10                                -Acki.
  48.     W-8679 Oberkotzau
  49.